This disclosure relates to methods and tools for the generation of video. In particular, the disclosure describes techniques which are useful for generating and directing video sequences set within a virtual environment.
The field of animation has come along way from the early days of 2-D animation, which necessarily involved the generation of a huge number of hand-drawn and painted images which were subsequently filmed, or “shot”, on a frame-by-frame basis. In more recent years, 3-D computer generated imagery (CGI) has dramatically enhanced the visual appeal of animated film. Typically, digital video generation involves taking a collection of models within a scene, a camera viewpoint and one or more light sources, to produce an image that depicts the scene from the selected camera view point and with the given level of lighting. A movie is produced by altering, by a set amount, one or more of the set of models (e.g. character movement), the lighting (e.g. fade in/out), or the camera view point (e.g. panning), rendering another frame of film, and repeating this process. The alterations between frames are small, but the cumulative effect is of motion, and thus the video is generated from slightly different images showing changes over time.
Thus, CGI techniques circumvent the laborious process of drawing each frame by hand, each frame instead being digitally “rendered” by means of computerized processing power. This technique therefore offers more efficient production of animated film than is seen by techniques involving hand-drawn images. However, there is still more to be gained, in terms of both cost and time, in producing animated film or video. Indeed, it is typical for the production of an animated film to take several years to complete.
The technical art of machinima involves the application of real-world film-making techniques within a virtual environment, where characters and events are controlled by user input commands, by artificial intelligence, or by script. The production of live machinima demonstrates a number of clear advantages over previously adopted animation production techniques. Not only does it offer the freedom to direct or produce video without the need to rely on key frames, instead allowing users to manipulate character models collaboratively in real time, but it also benefits from considerable time and cost savings. Moreover, with the virtual world depiction of many computer programs now exhibiting superior graphical quality, there is a desire to exploit this graphical excellence in the technical field of film making. The sophistication of computer game graphics continues to increase with every passing year. The current state of the art provides a 3D world with complex models for characters and scenery, one or more moveable cameras, and real time lighting effects such as reflection and shadow casting. One goal of such games is to provide a level of immersion equivalent to that of cinema.
Games often include video sequences. These can either be for narrative purposes, or to replay some sequence of actions in the game. When in-game graphics were more primitive, the video sequences were often pre-rendered. However, with today's level of graphical quality, it is often sufficient to use in game graphics and assets (models, textures) to produce the game videos.
Video can trivially be recorded from games by saving the sequence of frames displayed on a digital display means to the player. However, it is not so straightforward to subsequently edit the generated video. It is known for users to record the visual outcome of their own virtual performance to a digital recording medium, such as a DVD, connected to their own computer display means for subsequent replay. Thus, the viewpoint that is depicted on a user's own display screen is recorded to become film footage set within the medium of a computer game. On a more sophisticated level, a number of game makers have added recording or playback capabilities to their games in order to more readily allow a user to repeatedly view their actions as a non interactive movie. Furthermore, there are many tools available for the generation, lighting and rendering of 3D scenes and the creation of video from multiple renderings.
Despite the significant advantages offered by machinima in terms of cost and time efficiency, the tools and techniques currently available for the production of machinima movie or video are very limited in terms of their film-making capabilities. Even in cases where games developers provide the functionality to record video sequences as part of the game system, this is typically added as an afterthought and is not in-built into the system from the ground up. The usefulness and flexibility of such systems is therefore restricted. In particular, known machinima production systems allow little capacity for a user to interact with, or potentially edit, pre-recorded display frame sequences. At best, it is possible for a user seeking to generate a recorded video sequence to try to direct the visually evolving scene using player input commands which have an impact on the outcome of program execution. It may also be possible for advanced users to edit the scripts which define one or more of the animation sequences that are performed by avatars or props that populate the virtual scene.
However, the potential for editing the video recording is restricted to simply repeating the process of recording a given sequence of execution until the desired result is obtained. This is akin to the classic approach to film making which follows a basic process of: RECORD. EDIT, and PLAY as 3 distinct stages. If additional data are needed or desired at the EDIT stage, it is necessary to go back and RECORD it again. This is a time-consuming process with limited control over the end result. In order to construct the final piece of video, it is necessary for a user to composite the various “takes” and overlay text, audio, etc.
There is therefore a desire to improve techniques for generating recorded video sequences set within a virtual environment. In particular, the present inventors have recognized the need to enhance the capacity for a user to direct, and subsequently edit, a sequence of video data. As such, embodiments of the present invention seek to provide tools and methods for generating and recording video data derived from the execution of a computer program for subsequent display.